Virtual reality applications

ABSTRACT

Augmented reality technology is described. The technology can detect objects in a scene, identifying one or more installed or available applications based on the detected objects, and place icons representing the identified applications proximate to the detected objects in a display of the scene, e.g., so that a user can start or install the identified applications. The technology can also facilitate interaction with an identified object, e.g., to remotely control a recognized object.

BACKGROUND

The number of mobile computing devices in use has increased dramaticallyover the last decade and continues to increase. Examples of mobilecomputing devices are mobile telephones, digital cameras, and globalpositioning system (“GPS”) receivers. According to one study, 60% of theworld's population has access to mobile telephones. An increasing numberof people use digital cameras and some manufacturers of digital cameraspresently have revenues of tens of billions of United States dollarsannually. Digital cameras are used to capture, store, and share images.Often, the images can be viewed nearly immediately after they arecaptured, such as on a display device associated with the digitalcameras. Once an image is captured, it can be processed by computingdevices. Image recognition is one such process that can be used torecognize and identify objects in an image. For example, imagerecognition techniques can determine whether an image contains a humanface, a particular object or shape, etc.

Augmented reality is a view of a physical, real-world environment thatis enhanced by computing devices to digitally augment visual or auditoryinformation a user observes in the real world. As an example, anaugmented reality system can receive scene information from a digitalcamera and a GPS, identify objects (e.g., people, animals, structures,etc.) in the scene, and provide additional information relating to theidentified objects. A user of such a system can take a photo of a sceneusing a mobile computing device (e.g., a digital camera, a cellularphone, a “smartphone,” etc.) and automatically receive information aboutone or more objects an augmented reality system recognizes in thephotographed (i.e., digitized) scene.

There are now hundreds of thousands of applications available for mobiledevices. Users can download and install applications (“apps”) that areinteresting or useful to them. However, finding such applications can bechallenging.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating a routine invoked by the disclosedtechnology in various embodiments.

FIG. 2 is an environmental diagram illustrating use of the disclosedtechnology in various embodiments.

FIG. 3 is a block diagram illustrating components employed by thedisclosed technology in various embodiments.

FIG. 4 is a flow diagram illustrating a routine invoked by the disclosedtechnology in various embodiments.

FIG. 5 is a flow diagram illustrating a routine invoked by the disclosedtechnology in various embodiments.

FIGS. 6A and 6B are environmental diagrams illustrating use of thedisclosed technology in various embodiments.

FIG. 7 is a flow diagram illustrating a routine invoked by the disclosedtechnology in various embodiments.

FIG. 8 is a block diagram of an illustrative embodiment of a computingdevice that is arranged in accordance with at least some embodiments ofthe present disclosure.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the scope of the subject matter presented herein.It will be readily understood that the aspects of the presentdisclosure, as generally described herein, and illustrated in theFigures, can be arranged, substituted, combined, separated, and designedin a wide variety of different configurations, all of which areexplicitly contemplated herein.

Augmented reality technology (“the technology”) is described. In variousembodiments, the technology detects objects in a scene, identifies oneor more installed applications based on at least one detected object,and displays an icon representing the identified one or moreapplications, e.g., proximate to the detected object(s) in a display ofthe scene. The technology can use various techniques for objectrecognition, e.g., image recognition, pattern recognition, etc. When auser selects a displayed icon, an application corresponding to theselected icon can start. In various embodiments, the technology caninstead (or additionally) identify available but not-yet-installedapplications based on at least one detected object. When the userselects a displayed icon, an application corresponding to the selectedicon can be installed and optionally started. Thus, the technologyenables a user to quickly identify applications that may be pertinent tothe context or milieu in which users find themselves.

The technology can employ a digital camera configured for use with amobile device the user is employing to digitize a scene. The mobiledevice can also process contextual information, e.g., GPS coordinates.Some applications may correspond to contextual information. As anexample, when the scene includes a particular restaurant, an identifiedapplication can be an application corresponding to the restaurant. Ifmultiple applications correspond to an object (e.g., a restaurant,store, or other establishment or object), the technology may identifyapplications suitable for the current location (e.g., GPS coordinates).Alternatively, a user can specify the contextual information to use. Asan example, the technology may identify applications for establishmentsthat are open at the current time, but the user may be interested onlyin applications corresponding to establishments that are open for dinnerlater in the day.

The technology can identify applications, e.g., by matching attributescorresponding to installed (or available) applications to the presentcontext or milieu, e.g., based on attributes of matched objects. Theattributes can be stored locally on a mobile device or at a server. Auser can also associate or disassociate an application with recognizedobjects, e.g., so that a particular application's icon is visible orremoved the next time an object is in a digitized scene.

3

In various embodiments, the technology can also identify applicationsbased on stored application “preferences.” These preferences may beindicated by application developers, organizations, etc. As an example,when a user is in a particular geographic area, a “sponsoredapplication” may be identified by the technology.

When multiple application icons are identified, the technology may usevarious techniques to alter the user interface. As examples, the iconsmay be stacked; some icons may appear before other applications in thestack; some icons (e.g., sponsored applications) may be larger thanother icons; etc.

The technology can also adapt the icons for applications, e.g., so thatthe icons are representative of underlying information. As an example, arestaurant review application's icon may be identified for manyrestaurants, and the icon may change to indicate a review for therecognized restaurant.

In various embodiments, the technology can detect objects in a scene,associate the detected objects with methods for interacting with thedetected objects, obtain a specification for interacting with thedetected objects using the associated methods; and provide a userinterface for controlling the detected objects. As an example, when anaudiovisual device (e.g., television, DVD player, etc.) is detected in ascene, the technology can communicate with the detected device (e.g.,using WiFi, radiofrequency, infrared, or other communications means) andobtain a specification for interacting with the device. Thespecification can provide information, e.g., available commands, how thecommands are to be sent, the format for the commands, etc. Thespecification can also provide information about user interfaceelements. Upon receiving the specification, the technology can provide auser interface that a user can use to control the device. When the userinteracts via the user interface, the technology can transmit commandsto the device. In various embodiments, the technology can communicatewith the detected objects by employing a radiofrequency identificationtag, wireless network, infrared signal, etc.

In various embodiments, the technology includes a component configuredfor use with a device that receives a signal from a computing device,provides an identification of one or more methods operable to controlthe device, 4 receives a command from the computing device wherein thecommand was identified in the one or more methods, and controls thedevice according to the received command. The command can be to controlmedia (e.g., play, stop, pause, rewind, fast forward, etc.), control apower circuit (e.g., turn on/off), etc. The component may also provide aspecification for the one or more methods, e.g., a hint for providing auser interface component.

Turning now to the figures, FIG. 1 is a flow diagram illustrating aroutine 100 invoked by the disclosed technology in various embodiments.The routine 100 begins at block 102. The routine 100 then continues atblock 104, where it receives a digitized vision of a scene. The routine100 then continues at block 106, where it detects objects in the scene.In various embodiments, the routine 100 may employ various imagerecognition techniques to recognize objects. The routine 100 thencontinues at block 108 where it receives contextual information.Examples of contextual information are location information (GPScoordinates, street address, city, etc.), time of day, etc. The routine100 then continues at block 110 where it identifies applications basedon the detected objects. As an example, when the technology recognizes atelevision, the technology may indicate an application that providescurrent television listings. As another example, when the technologyrecognizes a restaurant, the technology may identify an application thatis associated with the restaurant, e.g., to provide menus, reserveseats, etc. The routine 100 then continues at block 112 where itidentifies objects based on contextual information. As an example, ifthere are two restaurants identified in the scene and one of therestaurants is only open for lunch and dinner, the technology may onlyidentify the restaurant open for breakfast if the present time is withinwhat would normally be considered breakfast hours. The routine 100 thencontinues at block 114, where it places an icon representing identifiedapplications near detected objects. The routine 100 then returns atblock 116.

Those skilled in the art will appreciate that the logic illustrated inFIG. 1 and described above, and in each of the flow diagrams discussedbelow, may be altered in a variety of ways. For example, the order ofthe logic may be rearranged, substeps may be performed in parallel,illustrated logic may be omitted, other logic may be included, etc.

FIG. 2 is an environmental diagram illustrating use of the disclosedtechnology in various embodiments. A scene 200 includes three objects: afirst object 202, a second object 204, and a third object 206. A displayof a mobile computing device 208 displays digitized representations ofthe objects as a digitized representation of the first object 210, adigitized representation of the second object 212, and a digitizedrepresentation of the third object 214. The digitized representation ofthe first object to 10 is associated with a first icon 216A and a secondicon 216B. The digitized representation of the second object 212 isassociated with a third icon 218. As described above, the icons canrepresent installed applications or available applications. When a userselects an icon, e.g., by touching an area near the icon on atouchscreen of the mobile computing device, the technology may launchthe indicated application (if already installed) or install theindicated application. In some embodiments, the technology mayautomatically launch applications that are installed.

FIG. 3 is a block diagram illustrating components employed by thedisclosed technology in various embodiments. The components 300 caninclude a digitizer 302, a recognizer 304, application attributes 306,and an identifier 308. In various embodiments, additional components(not illustrated) or a subset of the illustrated components 300 can beemployed without deviating from the scope of the claimed technology. Thedigitizer component 302 can digitize a scene, e.g., a scene received viaan image capture device (not illustrated). The recognizer component 304can recognize objects in a digitized scene. In various embodiments, therecognizer component can use various image recognition techniques torecognize objects in the digitized scene. The identifier component 308can identify installed applications to be associated with recognizedobjects, e.g., using stored application attributes 306. The attributescan indicate, e.g., information about objects with which applicationsare associated, time of day, location, etc. The identifier component 308can also employ a server computing device (not illustrated), e.g., toidentify applications that are not presently installed but may beassociated with recognized objects.

FIG. 4 is a flow diagram illustrating a routine 400 invoked by thedisclosed technology in various embodiments. The routine 400 begins atblock 402. The routine 400 continues at block 404, where it receives adigitized vision of a scene. The routine 400 then continues at block 406where it detects objects in the digitized scene. The routine 400 canemploy various image recognition techniques to recognize objects. Theroutine 400 then continues at block 408 where it identifies applicationsthat are not stored locally, e.g., on a mobile computing device on whichthe routine executes. The routine 400 then continues at block 410 whereit places an icon for an application near a recognized object. As anexample, if the routine 400 recognizes a coffee shop in a digitizedscene and the user's mobile computing device does not have installed anapplication corresponding to the recognized coffee shop, the routine 400may place an icon for an application corresponding to the recognizedcoffee shop that, if selected, causes the application to be installed.The routine 400 then returns at block 412.

FIG. 5 is a flow diagram illustrating a routine 500 invoked by thedisclosed technology in various embodiments. The routine 500 begins atblock 502. The routine then continues at block 504, where it detectsobjects in a scene. The routine 500 then continues at block 506, whereit selects a first object from the recognized objects. The routine 500then continues at decision block 508, where it determines whether theselected object can be interacted with. The routine 500 may make thisdetermination, e.g. by querying a database (e.g., a local databasestored at the computing device invoking the routine 500 or a remotedatabase stored at a server computing device). If the selected objectcan be interacted with, the routine 500 continues at block 510.Otherwise, the routine 500 continues at block 514. At block 510, theroutine 500 obtains specifications for interacting with the selectedobject. In various embodiments, the routine 500 may obtain thespecifications from a locally stored database, the object directly(e.g., wirelessly), or from a remote computing device. The routine 500may then provide a user interface to a user so that the user caninteract with the selected object. As an example, if the recognizedobject is a television or other audiovisual device, the routine 500 mayprovide a user interface that enables the user to control theaudiovisual device. The received specifications can include instructionsfor providing aspects of the user interface. The routine 500 thencontinues at block 514, where it selects a next object from the set ofobjects detected above in relation to block 504. The routine 500 thencontinues at decision block 516, where it determines whether a nextobject was selected. If there are no more objects to be selected, theroutine 500 returns at block 518. Otherwise, the routine 500 continuesat decision block 508 to analyze the selected object.

FIGS. 6A and 6B are environmental diagrams illustrating use of thedisclosed technology in various embodiments. FIG. 6A includes a scene600 and a digitized version of the scene 600 displayed at a mobilecomputing device 606. The scene 600 includes a television 602 andanother object 604. The digitized version of the scene 600 displayed atthe mobile computing device 606 includes a digitized representation ofthe television 608 and a digitized representation of the other object610. The mobile computing device 606 also displays an icon 612associated with the digitized representation of the television 608. Asan example, the technology may have recognized the television 602 andidentified an application corresponding to the television 602 andrepresented by the icon 612. When the user selects the icon 612, thetechnology may launch the corresponding application (or install thecorresponding application). In various embodiments, the technology mayemploy an antenna 614 associated with the mobile computing device 606,e.g., to communicate with the television 602 or a network computingdevice (not illustrated) to receive specifications relating tocontrolling the television 602. In various embodiments, the mobilecomputing device 606 may communicate with the television using infrared,radio frequency, WiFi, etc. FIG. 6B illustrates a user interface 620displayed by the mobile computing device 606, e.g., when the userlaunches the application by selecting icon 612.

FIG. 7 is a flow diagram illustrating a routine 700 invoked by thedisclosed technology in various embodiments. The routine 700 begins atblock 702. The routine 700 then continues at block 704, where itreceives a signal. In various embodiments, the routine 700 can receive asignal from a mobile computing device that a user is operating tocommand a device on which the routine 700 executes. The routine 700 thencontinues at block 706, work provides methods operable to control thedevice. As an example, the routine 700 may provide a specification forcontrolling the device. The specification can include indications ofuser interfaces, available commands, frequencies, etc. The routine 700then continues at block 708, where it receives a command. In variousembodiments, the routine may receive commands from the mobile computingdevice to which the routine 700 provided the specification. The routine700 then continues at block 710, where it controls the device accordingto the received command. The routine then returns at block 712.

FIG. 8 is a block diagram illustrating an example computing device 800that is arranged in accordance with at least some embodiments of thepresent disclosure. In a very basic configuration 802, computing device800 typically includes one or more processors 804 and a system memory806. A memory bus 808 may be used for communicating between processor804 and system memory 806.

Depending on the desired configuration, processor 804 may be of any typeincluding but not limited to a microprocessor (“μP”), a microcontroller(“μC”), a digital signal processor (“DSP”), or any combination thereof.Processor 804 may include one more levels of caching, such as a levelone cache 810 and a level two cache 812, a processor core 814, andregisters 816. An example processor core 814 may include an arithmeticlogic unit (“ALU”), a floating point unit (“FPU”), a digital signalprocessing core (“DSP Core”), or any combination thereof. An examplememory controller 818 may also be used with processor 804, or in someimplementations memory controller 818 may be an internal part ofprocessor 804.

Depending on the desired configuration, system memory 806 may be of anytype including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. System memory 806 may include an operating system 820, one ormore applications 822, and program data 824. Application 822 may includean application identifier component 826 that is arranged to identifyapplications corresponding to a recognized object. Program data 824 mayinclude application attribute information 828, as is described herein.In some embodiments, application 822 may be arranged to operate withprogram data 824 on operating system 820 such that applications can beidentified. This described basic configuration 802 is illustrated inFIG. 8 by those components within the inner dashed line.

Computing device 800 may have additional features or functionality, andadditional interfaces to facilitate communications between basicconfiguration 802 and any required devices and interfaces. For example,a bus/interface controller 830 may be used to facilitate communicationsbetween basic configuration 802 and one or more data storage devices 832via a storage interface bus 834. Data storage devices 832 may beremovable storage devices 836, non-removable storage devices 838, or acombination thereof. Examples of removable storage and non-removablestorage devices include magnetic disk devices such as flexible diskdrives and hard-disk drives (“HDD”), optical disk drives such as compactdisk (“CD”) drives or digital versatile disk (“DVD”) drives, solid statedrives (“SSD”), and tape drives to name a few. Example computer storagemedia may include volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage ofinformation, such as computer readable instructions, data structures,program modules, or other data.

System memory 806, removable storage devices 836 and non-removablestorage devices 838 are examples of computer storage media. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVDor other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich may be used to store the desired information and which may beaccessed by computing device 800. Any such computer storage media may bepart of computing device 800.

Computing device 800 may also include an interface bus 840 forfacilitating communication from various interface devices (e.g., outputdevices 842, peripheral interfaces 844, and communication devices 846)to basic configuration 802 via bus/interface controller 830. Exampleoutput devices 842 include a graphics processing unit 848 and an audioprocessing unit 850, which may be configured to communicate to variousexternal devices such as a display or speakers via one or more A/V ports852. Example peripheral interfaces 844 include a serial interfacecontroller 854 or a parallel interface controller 856, which may beconfigured to communicate with external devices such as input devices(e.g., keyboard, mouse, pen, voice input device, touch input device,etc.) or other peripheral devices (e.g., printer, scanner, etc.) via oneor more I/O ports 858. An example communication device 846 includes anetwork controller 860, which may be arranged to facilitatecommunications with one or more other computing devices 862 over anetwork communication link via one or more communication ports 864.

The network communication link may be one example of a communicationmedia. Communication media may typically be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and may include any information delivery media. A “modulateddata signal” may be a signal that has one or more of its characteristicsset or changed in such a manner as to encode information in the signal.By way of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (“RE”), microwave,infrared (“IR”) and other wireless media. The term computer readablemedia as used herein may include both storage media and communicationmedia.

Computing device 800 may be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (“PDA”), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 800 may also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims. Accordingly, the invention isnot limited except as by the appended claims.

11

1. A method performed by a computing system having a processor,comprising: detecting at least one object of multiple objects in ascene; receiving contextual information; identifying one or moreinstalled applications based on the detected at least one object,wherein the identifying includes identifying the one or more installedapplications based on the received contextual information; and placingan icon representing the identified one or more applications proximateto the detected one or more objects in a display of the scene.
 2. Themethod of claim 1, wherein the detecting includes employing a digitalcamera.
 3. The method of claim 1, wherein the scene is displayed on anoutput device.
 4. (canceled)
 5. The method of claim 1, wherein thecontextual information is received via input from a user.
 6. The methodof claim 1, wherein the contextual information is based on detectedpositional information.
 7. The method of claim 1, wherein the detectingincludes employing one or more image recognition methods.
 8. The methodof claim 1, wherein the identifying includes searching a list ofattributes associated with installed applications for an attributeassociated with the detected at least one object.
 9. The method of claim1, further comprising receiving a user selection of one of the placedicons and causing an installed application corresponding to the selectedicon to start execution.
 10. The method of claim 1, further comprisingreceiving a list of attributes associated with at least one of theinstalled applications.
 11. The method of claim 10, wherein the list isreceived via keyboard input.
 12. The method of claim 10, wherein thelist is downloaded from a remote computer.
 13. The method of claim 1,further comprising receiving an input to associate an installedapplication not identified with an object detected in the scene, andassociating the application with the detected object.
 14. The method ofclaim 1, further comprising receiving an input to disassociate anapplication identified as corresponding with an object detected in thescene, and disassociating the application from the detected object. 15.A method performed by a computing system having a processor, comprising:detecting at least one object of multiple objects in a scene;identifying one or more applications not installed at a mobile computingdevice based on the detected at least one object; and placing an iconrepresenting the identified one or more applications proximate to thedetected one or more objects in a display of the scene.
 16. The methodof claim 15, wherein the detecting includes employing a digital camera.17. The method of claim 15, wherein the scene is displayed on an outputdevice.
 18. The method of claim 15, further comprising receivingcontextual information, wherein the identifying includes identifying theone or more applications based on the received contextual information.19. The method of claim 18, wherein the contextual information isreceived via input from a user.
 20. The method of claim 18, wherein thecontextual information is based on detected positional information. 21.The method of claim 15, wherein the detecting includes employing one ormore image recognition methods.
 22. The method of claim 15, wherein theidentifying includes searching a list of attributes associated withapplications for an attribute associated with the detected at least oneobject.
 23. The method of claim 15, wherein the one ore moreapplications are identified based on features provided by the one ormore applications. 24-33. (canceled)
 34. A computer-readable storagedevice storing instructions that, if executed by a computing device,cause the computing device to perform operations comprising: detectingat least one object of multiple objects in a scene; receiving contextualinformation; identifying one or more installed applications based on thedetected at least one object, wherein the identifying includesidentifying the one or more installed applications based on the receivedcontextual information; and placing an icon representing the identifiedone or more applications proximate to the detected one or more objectsin a display of the scene.
 35. The computer-readable storage device ofclaim 34, wherein the detecting includes employing a digital camera. 36.The computer-readable storage device of claim 34, wherein the scene isdisplayed on an output device.
 37. (canceled)
 38. The computer-readablestorage device of claim 34, wherein the contextual information isreceived via input from a user.
 39. The computer-readable storage deviceof claim 34, wherein the contextual information is based on detectedpositional information.
 40. The computer-readable storage device ofclaim 34, wherein the detecting includes employing one or more imagerecognition methods.
 41. The computer-readable storage device of claim34, wherein the identifying includes searching a list of attributesassociated with installed applications for an attribute associated withthe detected at least one object.
 42. The computer-readable storagedevice of claim 34, the operations further comprising receiving a userselection of one of the placed icons and causing an installedapplication corresponding to the selected icon to start execution. 43.The computer-readable storage device of claim 34, the operations furthercomprising receiving a list of attributes associated with at least oneof the installed applications.
 44. The computer-readable storage deviceof claim 43, wherein the list is received via keyboard input.
 45. Thecomputer-readable storage device of claim 43, wherein the list isdownloaded from a remote computer.
 46. The computer-readable storagedevice of claim 34, the operations further comprising receiving an inputto associate an installed application not identified with an objectdetected in the scene, and associating the application with the detectedobject.
 47. The computer-readable storage device of claim 34, theoperations further comprising receiving an input to disassociate anapplication identified as corresponding with an object detected in thescene, and disassociating the application from the detected object. 48.A computer-readable storage device storing instructions that, f executedby a computing device, cause the computing device to perform operationscomprising: detecting at least one object of multiple objects in ascene; identifying one or more applications not installed at a mobilecomputing device based on the detected at least one object; and placingan icon representing the identified one or more applications proximateto the detected one or more objects in a display of the scene.
 49. Thecomputer-readable storage device of claim 48, wherein the detectingincludes employing a digital camera.
 50. The computer-readable storagedevice of claim 48, wherein the scene is displayed on an output device.51. The computer-readable storage device of claim 48, the operationsfurther comprising receiving contextual information, wherein theidentifying includes identifying the one or more applications based onthe received contextual information.
 52. The computer-readable storagedevice of claim 51, wherein the contextual information is received viainput from a user.
 53. The computer-readable storage device of claim 51,wherein the contextual information is based on detected positionalinformation.
 54. The computer-readable storage device of claim 48,wherein the detecting includes employing one or more image recognitioncomputer-readable storage devices.
 55. The computer-readable storagedevice of claim 48, wherein the identifying includes searching a list ofattributes associated with applications for an attribute associated withthe detected at least one object.
 56. The computer-readable storagedevice of claim 48, wherein the one ore more applications are identifiedbased on features provided by the one or more applications. 57-66.(canceled)
 67. A system, comprising: a component configured to detect atleast one object of multiple objects in a scene; a component configuredto receive contextual information a component configured to identify oneor more installed applications based on the detected at least one objectand the received contextual information; and a component configured toplace an icon representing the identified one or more applicationsproximate to the detected one or more objects in a display of the scene.68. The system of claim 67, wherein the component configured to detectemploys a digital camera.
 69. The system of claim 67, wherein the sceneis displayed on an output device.
 70. (canceled)
 71. The system of claim67, wherein the contextual information is received via input from auser.
 72. The system of claim 67, wherein the contextual information isbased on detected positional information.
 73. The system of claim 67,wherein the component configured to detect employs one or more imagerecognition systems.
 74. The system of claim 67, wherein the componentconfigured to identify searches a list of attributes associated withinstalled applications for an attribute associated with the detected atleast one object.
 75. The system of claim 67, further comprisingcomponent configured to receive a user selection of one of the placedicons and causing an installed application corresponding to the selectedicon to start execution.
 76. The system of claim 67, further comprisinga component configured to receive a list of attributes associated withat least one of the installed applications.
 77. The system of claim 76,wherein the list is received via keyboard input.
 78. The system of claim76, wherein the list is downloaded from a remote computer.
 79. Thesystem of claim 67, further comprising a component configured to receivean input to associate an installed application not identified with anobject detected in the scene, and associate the application with thedetected object.
 80. The system of claim 67, further comprising acomponent configured to receive an input to disassociate an applicationidentified as corresponding with an object detected in the scene, anddisassociate the application from the detected object.
 81. A system,comprising: a component configured to detect at least one object ofmultiple objects in a scene; a component configured to identify one ormore applications not installed at a mobile computing device based onthe detected at least one object; and a component configured to place anicon representing the identified one or more applications proximate tothe detected one or more objects in a display of the scene.
 82. Thesystem of claim 81, wherein the component configured to detect employs adigital camera.
 83. The system of claim 81, wherein the scene isdisplayed on an output device.
 84. The system of claim 81, furthercomprising a component configured to receive contextual information,wherein the component configured to identify identifies the one or moreapplications based on the received contextual information.
 85. Thesystem of claim 84, wherein the contextual information is received viainput from a user.
 86. The system of claim 84, wherein the contextualinformation is based on detected positional information.
 87. The systemof claim 81, wherein the component configured to detect employs one ormore image recognition systems.
 88. The system of claim 81, wherein thecomponent configured to identify searches a list of attributesassociated with applications for an attribute associated with thedetected at least one object.
 89. The system of claim 81, wherein theone ore more applications are identified based on features provided bythe one or more applications. 90-114. (canceled)